/**
 * Created by Demon-pro on 2015/7/27.
 */
var Page = function () {
    function initReadonly(index) {
        var $texts = $("table[table-content='道体参数'] > tbody").find("tr:gt(0):lt(3) > td :text");
        for (var i = index; i < $texts.size(); i = i + 3) {
            $($texts.get(i)).prop("readonly", true);
        }
    }

    function autoCalculate($Param) {
        if (!$.isNumeric($Param.val()))
            return null;
        switch ($Param.attr("id")) {
            case "E10":
                if ($.isNumeric($("#E171").val())) {
                    $("#E180").val(parseFloat($("#E10").val()) - parseFloat($("#E171").val()));
                    return $("#E180");
                }
                if ($.isNumeric($("#E180").val())) {
                    $("#E171").val(parseFloat($("#E10").val()) - parseFloat($("#E180").val()));
                    return $("#E171");
                }
                break;
            case "E171":
                //优先更新等号左边的数
                if ($.isNumeric($("#E180").val())) {
                    $("#E10").val(parseFloat($("#E180").val()) + parseFloat($("#E171").val()));
                    return $("#E10");
                }
                if ($.isNumeric($("#E10").val())) {
                    $("#E180").val(parseFloat($("#E10").val()) - parseFloat($("#E171").val()));
                    return $("#E180");
                }
                break;
            case "E180":
                //优先更新等号左边的数
                if ($.isNumeric($("#E171").val())) {
                    $("#E10").val(parseFloat($("#E180").val()) + parseFloat($("#E171").val()));
                    return $("#E10");
                }
                if ($.isNumeric($("#E10").val())) {
                    $("#E171").val(parseFloat($("#E10").val()) - parseFloat($("#E180").val()));
                    return $("#E171");
                }
                break;
        }
        return null;
    }

    function update($obj) {
        var the = $obj;
        if (validate.isNotNumber(the.val())) {
            validate.addInvalid(the);
            return;
        }
        $.ajax({
            url: basePath + "tools/threeLinks/update",
            type: "post",
            dataType: "json",
            data: "paramName=" + the.attr("id") + "&paramValue=" + the.val(),
            success: function () {
                validate.addValid(the);
            }
        })
    }

    function initTableStyle() {
        $("table td").attr({align: "center", valign: "middle"});
        $("table th").addClass("text-center");
    }

    function updateHandle() {
        $("input[id^='E'][id!='E4'][id!='E165'][id!='E173']").on("blur", function () {
            update($(this));
            var $obj = autoCalculate($(this));
            if ($obj != null)
                update($obj);
        })
    }

    function selectHandle() {
        $("#E4,#E165,#E173").on("change", function () {
            var index = $(this).closest("td").index("table[table-content='道体参数'] tr:eq(1) td");
            initReadonly(index);
            switch ($(this).val()) {
                case "1":
                    $(this).closest("tr").siblings(":eq(2)").find("td:eq(" + index + ") :text").prop("readonly", false);
                    break;
                case "2":
                    $(this).closest("tr").siblings(":lt(2)").find("td:eq(" + index + ") :text").prop("readonly", false);
                    break;
            }
            update($(this));
        }).change();

        var map = {
            E189:"E196",
            E186:"E193",
            E188:"E195",
            E185:"E192",
            E190:"E197",
            E187:"E194"
        };

        $("#type").change(function (){
            switch ($(this).val()){
                case "1":
                    $.each(map,function (key,value){
                       $("#"+value).attr("id",key);
                    });
                    break;
                case "2":
                    $.each(map,function (key,value){
                        $("#"+key).attr("id",value);
                    });
                    break;
            }
        })

    }

    function clean() {
        $.post(basePath + "tools/threeLinks/clean", function () {
        });
    }

    function initParam() {
        $("#E12,#E9,#E169,#E177").blur();
    }

    function calculateHandle(){
        $("#cal").click(function (){
            Metronic.blockUI({
                boxed: true,
                message: "计算中"
            });
            $.post(basePath + "tools/threeLinks/calAll/"+ $("#type").val(), function (data) {
                $("input").autoInject({
                    data: data,
                    mode: "id"
                });
                Metronic.unblockUI();
            })
        })
    }

    return {
        init: function () {
            initTableStyle();
            clean();
            updateHandle();
            selectHandle();
            calculateHandle();
            initParam();
        }
    }

}();